跳到主要内容

idea操作记录

快捷键

  • 快速生成全局变量 在 new 的变量后面加上 .field
  • ctrl + shift + - 全部折叠 + 反之
  • ctrl + shift + T 生成 try-catch
  • ctrl + shift + u 显示数据库的结构图
  • ctrl + F12 显示类方法

创建模板文件

打开 Editor --> File and Code Templates 切换到 File 选项卡。

parse 指令与包含一起使用。

要扩展为格式 $ {<variable_name>} 的相应值的预定义变量。 可用的预定义文件模板变量是:

  • ${PACKAGE_NAME} - 将创建新类或接口的目标包的名称。
  • ${PROJECT_NAME} - 当前项目的名称。
  • ${FILE_NAME} - 将要创建的 PHP 文件的名称。
  • ${NAME} - 在创建文件的过程中,在 "新建文件" 对话框中指定的新文件的名称。
  • ${USER} - 当前用户的登录名。
  • ${DATE} - 当前系统日期。
  • ${TIME} - 当前系统时间。
  • ${YEAR} - 本年度。
  • ${MONTH} - 当月。
  • ${DAY} - 当月的当前日期。
  • ${HOUR} - 当前时间。
  • ${MINUTE} - 当前分钟。
  • ${PRODUCT_NAME} - 将在其中创建文件的 IDE 的名称。
  • ${MONTH_NAME_SHORT} - 月份名称的前3个字母。示例:1月,2月等。
  • ${MONTH_NAME_FULL} - 一个月的全名。示例:1月,2月等。

LiveTemplate

预定义模板变量

预定义变量

IntelliJ IDEA支持以下无法修改的预定义实时模板变量:

$END$ —应用模板后的插入符位置。

$SELECTION$ —用户在调用模板之前选择的文本。此变量仅在 环绕声模板中使用。

$SELSTART$ -将选择的文本块的起始位置 之后 在应用模板。

$SELEND$ -将所选择的文本块的结束位置 后 在应用模板。

自带的函数

查看LiveTemplate自带的函数

methodParameters():返回模板在其中扩展的方法的参数列表。 methodReturnType() :返回由当前方法扩展模板所返回的值的类型。

使用例子

注意:下面创建的这些模板,要在函数里面用,因为这些函数是有作用域的,所以需要在函数里创建了再粘贴到函数外面...

例如生成一个方法注释,如下($return$$params$ 只是占位符)

/**
* <b>
*
* </b>
* <br/>
*
$return$
$params$
* @exception null : null
*/

这里使用 LiveTemplate 提供的一个函数 methodParameters() 获取方法的参数,因为这个返回值是一串字符串,所以需要再编写一段脚本对其进行解析

# 返回值如下
[a, b, d]

编写一个脚本解析这串字符串

if ("${_1}".length() == 2) {
return '';
} else {
def result = '';
def params = "${_1}".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();
for (i = 0; i < params.size(); i++) {
if (i < (params.size() - 1)) {
result += ' * @param ' + params[i] + ' : ' + '\\n'
} else {
result += ' * @param ' + params[i] + ' : '
}
};
return result;
}
// 把 methodParameters() 的返回值交给这个函数解析(通过 ${_1} 获取到)
groovyScript("if(\"${_1}\".length() == 2) {return '';} else {def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();for(i = 0; i < params.size(); i++) {if(i<(params.size()-1)){result+=' * @param ' + params[i] + ' : ' + '\\n'}else{result+=' * @param ' + params[i] + ' : '}}; return result;}", methodParameters());

同理通过 methodReturnType() 获取返回值类型

def returnType = ${_1}; 
def result = ' * @return : ' + returnType;
return result;
// 把 methodReturnType() 的返回值交给这个函数解析
groovyScript( "def returnType = \"${_1}\"; def result = ' * @return : ' + returnType; return result;", methodReturnType() );

PostfixCompletion

参考资料 IntelliJ IDEA自定义Postfix Completion

Postfix Completion 就是围绕着一个关键字(就是点后面的),然后将关键字替换成点前面的变量,来简化书写,达到四两拨千斤的效果。

例如 .sout 生成

// 输入
"hello".sout
// 生成
System.out.println("hello");

用法和上面的 LiveTemplate 有点像

logger.info($EXPR$);

数据导出与导入

参考资料 DataGrip 数据导出与导入 因为 IDEA 内置了 DataGrip 的功能,所以这里也顺便记录 DataGrip 的坑

这里有个问题就是导出 DataBase 时会显示权限错误 Errcode: 13 - Permission denied

如果第一次导出,应该会出现Can't create/write to file这个错误,这时候,需要在Out path后面,手动添加上,需要导出的文件(例如 C:\Users\alsritter\Desktop\sql\database.sql

注解处理器

如果想要支持注解处理器(例如 Lombok 这类工具就需要勾上),它就是在编译前\后检查的(注解的作用就不扯了)

项目文件过滤

如果想要过滤某些文件不在项目管理目录出现,则可以设置文件过滤